1. Field
The disclosure relates generally to computer implemented methods, computer program products, and data processing systems. More specifically, to computer implemented methods, computer program products, and data processing systems for optimizing page sizes of applications during run-time.
2. Description of the Related Art
Increasingly large symmetric multi-processor data processing systems are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. These systems are also referred to as logical partitioned (LPAR) data processing systems. A logical partitioned functionality within a data processing system allows multiple copies of a single operating system or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platform resources. These platform allocable resources include one or more architecturally distinct processors and their interrupt management area, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the operating system image.
Each distinct operating system or image of an operating system running within a platform is protected from each other, such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This protection is provided by allocating a disjointed set of platform resources to be directly managed by each operating system image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the operating system, or each different operating system, directly controls a distinct set of allocable resources within the platform.
With respect to hardware resources in a logical partitioned data processing system, these resources are shared dis-jointly among various partitions. These resources may include, for example, input/output (I/O) adapters, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within a logical partitioned data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.
Hypervisors such as those on IBM's mainframe products, as well as EMC™'s vmware® have provided a means of virtualizing memory to partitions running on the physical hardware. This technique allows memory to move, based on demand from partition to partition on the virtualized system. The physical memory is managed by the hypervisor, and that management is mostly transparent to the partitions running on top of the hypervisor. This virtualized partition memory is sometimes referred to as virtual real memory (VRM).
New hardware and operating systems running on that hardware are able to support much bigger page sizes than what it existed of in the past. The larger page sizes directly reduces the number of entries in the Hardware Page Frame Table & reduces the latency for page look-ups upon a cache miss.
To use larger page sizes, applications need to be altered or the Virtual Memory Subsystem of the Operating System need to automatically promote the page size to a larger page size. However, page promotion by the Operating System, has many drawbacks. For one, the Operating System cannot promote page sizes until it finds a set of contiguous pages that can be combined together to a larger page size. Additionally, the Operating System does not understand the application's demand on resources before doing the promotion. Hence, this may not result in benefits to the application or the workload all the time. Finally, the application or administrators do not have much control.